home *** CD-ROM | disk | FTP | other *** search
- /*
- ### from secondary to primary coordiantes ###
- */
-
- polar_to_euclid(v_euc,v_pol)
- double v_euc[],v_pol[];
- {
- int i;
- double cos(),sin(),cosp,sinp;
- extern int enable_polar,var_dim;
- extern char string[];
-
- switch(enable_polar){
- case 1:
- if(var_dim ==4){
- cosp=cos(v_pol[2]);
- sinp=sin(v_pol[2]);
- v_euc[0] = v_pol[0] * cosp;
- v_euc[1] = v_pol[1] * cosp - v_pol[3] * v_pol[0] * sinp;
- v_euc[2] = v_pol[0] * sinp;
- v_euc[3] = v_pol[1] * sinp + v_pol[3] * v_pol[0] * cosp;
- }
- else {
- for(i=0;i<var_dim-1;i += 2){
- v_euc[i] = v_pol[i] * cos(v_pol[i+1]);
- v_euc[i+1] = v_pol[i] * sin(v_pol[i+1]);
- }
- }
- break;
- case 2:
- for(i=0;i<var_dim-1;i += 2){
- v_euc[i] = v_pol[i] * cos(v_pol[i+1]);
- v_euc[i+1] = v_pol[i] * sin(v_pol[i+1]);
- }
- break;
- default:
- sprintf(string,"polar_to_euclid: coord transform for mode=%d!",enable_polar);
- system_mess_proc(1,string);
- break;
- }
- }
-